package com.njtoyo.taxi.admin.service.business.ride;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.call.RealTimeSinglePagePresenter;
import com.njtoyo.taxi.admin.rest.presenter.business.ride.call.ReservationPagePresenter;
import com.njtoyo.taxi.admin.rest.wrapper.business.call.NoResponseCustomerMobileNumberExportWrapper;
import com.njtoyo.taxi.admin.rest.wrapper.business.ride.CallWrapper;
import com.njtoyo.taxi.admin.rest.wrapper.business.ride.CallWrapperDto;
import com.taxi.entity.common.RestResult;
import com.njtoyo.taxi.entity.backend.AdminUser;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;

public interface CallsService {

    RestResult<Page<RealTimeSinglePagePresenter>> realTimeSingleList(AdminUser adminUser, CallWrapper wrapper);

    RestResult<Page<ReservationPagePresenter>> reservationList(AdminUser adminUser, CallWrapper wrapper);

    RestResult<Page<RealTimeSinglePagePresenter>> specifiedList(AdminUser adminUser, CallWrapper wrapper);

    void getNoResponseCustomerMobileNumberExport(AdminUser adminUser, NoResponseCustomerMobileNumberExportWrapper wrapper, HttpServletResponse response) throws IOException;

    RestResult refund(Long id, BigDecimal refundAmount);

    //实时单列表导出
    void getRealTimeSingleListExport(AdminUser adminUser, CallWrapperDto wrapper, HttpServletResponse response) throws IOException;

    //预约单列表导出
    void getReservationListExport(AdminUser adminUser, CallWrapperDto wrapper, HttpServletResponse response) throws IOException;

    //指定单列表导出
    void getSpecifiedListExport(AdminUser adminUser, CallWrapperDto wrapper, HttpServletResponse response) throws IOException;
}
